/**
 * Generali Solutions d'assurances - Tous droits réservés &copy; 2007 - 2010
 */
package fr.generali.accueilclient.client.assembler.input;

import org.apache.commons.lang.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.core.convert.converter.Converter;
import org.springframework.stereotype.Component;

import fr.generali.refservcommuns.rce.autresreferentiels.refbancaire.demande.DtoDemandeIban;
import fr.generali.refservcommuns.rce.autresreferentiels.refbancaire.pty.gestionrolesmetier.DtoBanque;
import fr.generali.refservcommuns.rce.autresreferentiels.refbancaire.pty.modelemetier.pivot.DtoCompteBancaireIban;
import fr.generali.refservcommuns.rce.autresreferentiels.refbancaire.technique.DtoParam;

/**
 * Transforme un {@link String} en un {@link DtoDemandeIban}
 * 
 * @author selrhazala
 */
@Component("iban2toDtoDemandeIbanConverter")
public class Iban2toDtoDemandeIbanConverter implements Converter<String, DtoDemandeIban> {

    /**
     * LOGGER
     */
    private static final Logger LOGGER = LoggerFactory.getLogger(Iban2toDtoDemandeIbanConverter.class);

    /**
     * {@inheritDoc}
     */
    public DtoDemandeIban convert(String iban) {
        LOGGER.info("assemble");
        DtoBanque dtobanque = new DtoBanque();
        dtobanque.setCodeBIC(StringUtils.EMPTY);
        dtobanque.setDomiciliation(StringUtils.EMPTY);

        DtoCompteBancaireIban cpIban = new DtoCompteBancaireIban();
        cpIban.setCodeIBAN(iban);
        cpIban.setBanqueGestionnaire(dtobanque);

        DtoParam dtoParam = new DtoParam();
        dtoParam.setIsInternational(true);

        DtoDemandeIban dtoDemandeIban = new DtoDemandeIban();
        dtoDemandeIban.setCompteBancaireIban(cpIban);
        dtoDemandeIban.setParamIban(dtoParam);

        return dtoDemandeIban;
    }
}
